perm filename MRV.DOC[1,BGB] blob
sn#001249 filedate 1972-08-28 generic text, type T, neo UTF8
00100 ROBOT VEHICLE VISION
00200
00300 Cart Project
00400 Stanford Artificial Intelligence Laboratory
00500
00600 Baumgart
00700
00800
00900
01000 ABSTRACT
01100
01200 Still lacking a working robot that can move and see; the
01300 means, goals, data, programming and hardware of the Cart Project are
01400 described as an approach to mobile robot vision.
01500
01600
01700
01800 (ABSTRACT)
01900
02000 (The capabities, data, programming and hardware of a
02100 terrestrial robot that can move and see are described.)
02200
02300
02400
02500 CONTENTS
02600 GOALS.
02700
02800 DATA.
02900 1. TV images.
03000 2. Features 2D.
03100 3. Blobs 2d.
03200 4. Features 3D.
03300 5. Bodies 3D.
03400 6. Elevation Map.
03500 7. Cart Course Map.
03600
03700 PROGRAMMING.
03800 1. Cart Running.
03900 2. Image Analysis.
04000 3. Locus Solving.
04100 4. World Modeling.
04200 5. Image Synthesis.
04300
04400 HARDWARE.
00100 THE GOAL.
00200
00300 The goal of the Cart Project is to get a computer controlled
00400 cart to see by means of a TV camera so that it can drive around
00500 outside the laboratory.
00600
00100 THE GROUND RULES.
00200
00300 First, the robot must operate in the Real World. Reality of
00400 course is subjective, good robot work can be done in a simulated
00500 world or in a synthetic world; however it is part of the goal of the
00600 Cart Project to deal with the world of roadways, parking lots, grassy
00700 hills, eucalyptus trees, sun, sky, dirt and horse manure that is
00800 found outside of our laboratory.
00900
01000 Second, the robot is allowed to have a map. In fact the map is
01100 not merely an incidental thing that is or is not in the glove
01200 compartment, but is essential to robot vision. The map or "world
01300 model" is the robot's internal concept of the world it sees.
01400
01500 Manual initialization of the world model is allowed. Although
01600 a sophisticated robot should be able to automatically acquire a world
01700 model or map as it goes along, the mere representation of the map in
01800 a computer is of such difficult that I have had to settle for
01900 manually constructing a world model. Programmers should always be
02000 warned by the old proverb: You can't automate a process you don't
02100 know nothun' about.
02200
02300 A line following automaton is not a solution. A line follower
02400 can readily be made with a couple of photocells and although it is
02500 harder to do it with a computer and a TV camera it has been done and
02600 didn't readily lend itself to generality.
02700
00100 Dead Reckoning should be minimal. Dead Reckoning is a
00200 non-visual means of knowing where the camera is at. To the extent
00300 that a robot dead reckons, to that extent is its visual organ
00400 irrelevant to navigation. In the limit a robot with a precise
00500 locomotion system and an accurate map could drive around blindly.
00600
00700 Non-Visual aides to navigation aren't kosher. The cart is
00800 more a statement of a visual perception problem than it is a computer
00900 control cart. At present the cart has no inertial guidance, feelers,
01000 speedometer, odometer or compass and I am reluctant to add them
01100 because they are non visual aides to naviagtion. However, I would
01200 like to have non visual means of measuring the position of the
01300 wheels, pan, tilt, target voltage and f-stop of the camera; which
01400 indicates that I do not strictly follow the no non visual aides
01500 ground rule.
01600
01700 The world can be assumed to be essentially static. Namely the
01800 only things that move are the cart and the sun. Well now if the
01900 robot can't deal with a static world then it won't have a chance in a
02000 dynamic one - or - a dynamic world can be sucessfully modeled by
02100 using a large number of static worlds which differ slightly.
00100 SYSTEMS
00200
00300 The Cart's system problem is that the code and data for cart
00400 vision and control is larger than core. I have tried multi-jobbing,
00500 shared segments, overlays, ptys, mail, user interrupts, and peeking.
00600 I conclude that building sophisticated sub systems does not
00700 lead directly to clear and powerful vision software. What I now am
00800 doing is writing a set of programs which have three steps: Input,
00900 Compute, and Output.
01000
01100 Accordingly, the Cart Running Sequence is merely a serial
01200 loop of program runs with no parallel processing and all inter job
01300 communication is done via the disk file system.
00100 PROCESSING SEQUENCES.
00200
00300 For our first solution, the cart will operate in a LOOK,
00400 THINK, MOVE loop.
00500
00600 First it LOOKS, it takes a TV picture. Then it
00700 THINKS, it predicts what is in the picture then verifies that what it
00800 anticipated is there, and if it finds what it wants it measures it
00900 and deduces where the picture was taken from and how far off that is
01000 from where the cart wants to be. And then it MOVES, the steering
01100 wheels are moved a certain amount if necessary and then the drive
01200 motors are activated to move the cart blindly along its way from one
01300 to twnety feet.
01400
01500 A. Model Making Sequence.
01600 Ad Hoc Programming.
01700 Manual Commands.
01800 Image Analysis - computer assisted.
01900
02000 B. Cart Running Sequence.
02100
02200 Initialization Tell the cart where it is.
02300
02400 INPUT Take a television picture.
02500 Prediction Elements of the image are anticipated.
02600 Analysis Image elements are sought in the new image.
02700 Verification
02800 Measurement Compute the locus of the camera.
02900 Course Calculation
03000 OUTPUT Move the cart.
00100 Photometry
00200
00300 Sure its important to find the edges and T-joints in an
00400 image, however knowing why a particular point in a particular image
00500 is as bright as it is, is equally important, and can solve the same
00600 sorts of problems and hasn't received enough attention.
00700
00800 Basically my solution to the cart's problem is to model it to
00900 death. Namely enter into the computer everything that an advanced
01000 exploratory robot might be able to report back AFTER it has gone over
01100 an area. Then I imagine that our primitive cart robot has the duty
01200 merely to check on the earlier exploration and verify and update it.
01300
01400 The highest cognitive level of the cart software is a moral
01500 imperative to trace along a predetermined course.